package com.qingfeng.music.ui.main.contract;

import com.shuji.android.library.BaseModel;
import com.shuji.android.library.BasePresenter;
import com.shuji.android.library.BaseView;

import java.util.List;

import rx.Observable;

/**
 * 网络歌曲 MVP
 *
 * Created by Ganlin.Wu on 2016/10/14.
 */
public interface InternetMainContract {

    /**
     * 模型
     *
     */
    interface Model extends BaseModel {

        /**
         *
         * @return
         */
        Observable<List<String>> getMusicCategories();

        /**
         * 取得类型编号
         *
         * @param title
         * @return
         */
        Observable<Integer> getMusicType(String title);
    }

    /**
     * 视图
     *
     */
    interface View extends BaseView {

        /**
         *
         * @param musics
         */
        void showMusicCategories(List<String> musics);

        /**
         * 显示分类下的歌曲列表
         *
         * @param title
         * @param type
         */
        void startBillBoardAction(String title, int type);
    }

    /**
     * 控制器
     *
     */
    abstract class Presenter extends BasePresenter<View, Model> {

        /**
         * 音乐分类
         *
         */
        public abstract void loadMusicCategories();

        /**
         *
         *
         * @param title
         */
        public abstract void loadMusicType(String title);
    }
}
